bopen — bookmark opener

This script reads bookmarks from Firefox' exported bookmarks.json, presents
them in dmenu, and finally opens the choice in a web browser.

The final goal of bopen shall be unifying bookmarks from all the different
browsers, and making them accessible via one browser-independent interface.

Why?
----
Bookmark fragmentation by multiple browsers and profiles, unsynchronized
bookmarks, mess. Browser-specific bookmark formats which are not
interoperable. Bookmark formats which are human-unfriendly, really making them
only usable from within the browser. All the things that make it hard to
rage-ditch your browser and move to another one.

bopen wants to change that. Ideally, by collecting the bookmarks directly from
the browser profiles and "synchronizing" them into a list of items of the
format "<URL> <title>". The idea(l) is that whenever you add a bookmark in one
of your browsers, that bookmark is already available to bopen.

How to use
----------
Currently, bopen is in a proof-of-concept stage, meaning it doesn't read
directly from profiles yet and it only works with Firefox' exported
bookmarks.json
So, export your bookmarks into a json file (currently the path in bopen is
hardcoded), and invoke the script. You will probably want to bind it to some
global hotkey, with a program like xbindkeys, for example.

And yes, the bookmarks have to be exported, because the bookmark files in the
profile have a custom format and are not usable with standard tools:
https://bugzilla.mozilla.org/show_bug.cgi?id=818587

Dependencies
------------
- jq
- dmenu
